Method for the serial transfer of data between two electronic bus stations and communication system

ABSTRACT

The invention relates to a simple serial data transfer method for the exchange of data between two electronic bus stations. The bus connection consists of two lines wherein the first line is dedicated to data/control signals and a second line is dedicated to a power supply voltage. A data transfer from the transmitting station to the receiving station is started by pulling the first line to an activated potential for a first period of time. After elapse of the first period of time the transmitting station leaves said first line inactive for a second period of time. The transmitting station commences data transmission via said first and second line after elapse of said second period of time. Preferably, data is transferred in a number of blocks in the data frame. The first block concerns a synchronization block and the last block is a checksum block. An acknowledgement is made at the end of a data frame simply by pulling the first line to its activated potential through the receiving station for another period of time. A corresponding communication system is also disclosed. The data transfer method as well as the corresponding communication system can be used in consumer electronic products like portable devices where the portable devices are equipped with a wired remote control. Data transfer between main microprocessor in the portable device and a remote microprocessor in the remote controller will be made in accordance with the invention.

[0001] The present invention relates to a method for the serial transfer of data between two electronic bus stations over a bus connection and to a communication system comprising a transmitting station and a receiving station between which a serial data transfer can take place.

BACKGROUND

[0002] Consumer electronic products being equipped with a wired remote control are known from the prior art. Especially for portable consumer electronic products such as CD players, cassette players, MP3 players, etc. these wired remote controls are used frequently. For these audio devices, as listed above, some headphones belong to the first priority peripheral equipment of these devices. An advantageous solution is to combine the headphones with the wired remote control so that only one single cable is necessary for connecting the headphones and the wired remote control to the portable device.

[0003] Recently, the wired remote controls have taken over the additional function of informing the user about operation modes, recorded titles, and any kind of user information by means of the implementation of a small display in the wired remote control. The display can be of any type but at present usually an LCD display is used for this purpose. In this case, the display data can either be generated in the wired remote control itself or the data can be transferred from the portable device to the wired remote control in another embodiment. The first alternative requires a relatively expensive memory device for the display data in the wired remote control and also some more powerful micro-controller for the generation of the data signals evaluating user controls etc. The required remote control should of course be light weighted, and small sized so that the first embodiment is more difficult to achieve under these constraints. That is why the second alternative solution is preferred, mostly. But in that case all LCD display data needs to be transferred to the wired remote control from the portable device and this calls for an effective communication system and communication method between the portable device and the wired remote control. Also the number of wires necessary for the communication shall be as small as possible in order to assure the lightest weight cable connection and the best protection against electromagnetic interferences.

[0004] Under these constraints a serial bus communication is considered best to fulfill the requirements.

[0005] Invention

[0006] It is an object of the invention to disclose an efficient serial bus protocol for a communication between two bus stations that fulfills the following requirements: For power saving reasons the remote controller shall be in a power saving operating mode during most of the time a portable device is running. Therefore, the communication protocol shall guarantee that the remote controller is awaked from sleep mode into normal operation mode during starting a data transferal to the remote controller without data losses and therefore without the necessity to repeat a data transfer because of the sleeping of the wired remote controller. This object is achieved by means of the method steps in claim 1:

[0007] i) starting a data transfer in a first direction by pulling the first line to an activated potential for a first period of time;

[0008] ii) after elapse of the first period of time leaving said first line inactive for a second period of time; and

[0009] iii) commencing data transmission via said first and second line after elapse of said second period of time.

[0010] Before starting a data transfer the data/control line for the serial data connection is in an idle state, which corresponds to an inactivated state. The starting of the data transfer is notified by pulling the first data line to an activated potential as defined in step i) of claim 1. The remote controller will be awaked from sleep mode into normal operating mode upon detection of the activated potential on the first data line. A prerequisite for this is that the remote controller polls the first data line repeatedly in a certain period also in sleep mode. The length of the time period during which the first data line is polled to the activated potential needs to be slightly longer than the polling period. The remote controller changes its sleep mode state to normal operation mode after detecting the activated potential on the first data line. It requires some time to stabilize the fast clock signal for the normal operation mode. This time is guaranteed in the communication protocol by means of step ii), where the first data line remains inactive for a certain period of time. Of course, this time period is long enough so that the remote controller can stabilize its clock even if the activated potential has been detected at the end of the first period of time. The data transfer commences only after elapse of said second period of time and this guarantees that the remote controller is working in its normal operation mode when the first data signals are transferred.

[0011] Advantageously, additional embodiments of the inventive method are disclosed in the respective dependent claims.

[0012] Preferably, data is transmitted after said second period of time in form of blocks with some small idling time between each two blocks in which the data/control line remains in said inactive state. This has the advantage that the remote controller can buffer the data words in each block during the idling time and also it can perform a checksum calculation during this time.

[0013] It is also advantageous if the first block that is transferred in a data frame is a synchronization block in which a specific bit pattern is transferred for synchronization purposes. This measure allows for a recalibration of the sampling time points in the remote controller before data words are sampled.

[0014] The idling time after the Sync-block can be longer than the idling time between two data blocks. This gives the remote μP time to prepare the reception of the following data blocks.

[0015] For the case that the number of data blocks transferred in one data frame shall be variable, it is advantageous to transmitt an information block ahead of the data blocks. In the information block the number of following data blocks shall be contained.

[0016] Advantageously the last block that is transferred contains a checksum for the data frame. This allows for a simple error check in the remote controller by comparing the calculated checksum with the transferred checksum.

[0017] In this connection it is also advantageous that the receiving station pulls the data/control line to said activated potential if both checksums correspond to each other in order to make an acknowledgment of the safe receipt of the data frame. This is a very simple acknowledgement message that does not produce any overhead and enables to leave the interface circuit in the remote controller as simple as possible, i.e. it does not need to have full data transmission capability.

[0018] An advantageous communication system according to the invention is claimed in independent claim 12. Further advantageous embodiments of this communication system are apparent from dependent claims 13 to 15 (see also the explanations above).

DRAWINGS

[0019] Embodiments of the invention are described with reference to the accompanying drawings, which show in:

[0020]FIG. 1a a top view of a portable CD player together with a wired remote control and headphones;

[0021]FIG. 1b a side view of the player of FIG. 1a;

[0022]FIG. 2a the mechanical arrangement of jacks and a twin-rod-plug;

[0023]FIG. 2b the contact configuration on the twin-rod-plug;

[0024]FIG. 3 a schematic block diagram of the main unit and the remote control unit; and

[0025]FIG. 4 the data frame format and the structure of a sync block and an info/data block in the data frame.

[0026]FIG. 5 the sampling of the signals on said data/control line.

EXEMPLARY EMBODIMENTS

[0027]FIG. 1a displays a top view of a combined CD/MP3 player comprising two units. The main unit is referenced as a whole with reference number 1. On the topside of the player a group of operating elements 2 are arranged, realized in the present embodiment as push buttons. The operating elements 2 for the volume control are arranged on a side of the housing of the player (FIG. 1b). The operating elements 2 enable the user of the device to enter comments like “play”, “forward”, “reverse” and others. The actual operating status of the player 1 is indicated on a display 3, which is realized as an LCD display.

[0028] In general, such a portable device is carried in a pocket or on a belt of the clothing when the user listens to the music via headphones. Under these circumstances it is rather inconvenient to operate the device 1 by means of the operating elements 2 because when the player is e.g. carried in a pocket the user cannot see the elements 2 nor the operational status indicated on display 3, like the song number and song title.

[0029] In order to enhance the operational comfort for the user the player is controllable by a remote control 4 forming the second unit of the player. The remote control 4 is connectable to the main unit 1 by a cable 6 terminating in a two-rod-plug 7. The plug 7 has an audio rod 8 and a data rod 9, which are integrated in a single isolating housing 10. The audio rod 8 has a larger diameter than the data rod 9 and is also longer. An audio jack 12 and a data jack 13 are provided on one side of the housing of the player 1 (FIG. 1b). The audio jack and the data jack 13 are arranged mechanically and electrically to accommodate the audio rod 8 and the data jack 9 respectively, for establishing a mechanical and electrical connection between the remote control 4 and the main unit 1.

[0030] The remote control 4 itself is provided with a headphone jack not shown in FIG. 1a. Thereby, a pair of headphones 11 is for sound reproduction is connectable to the remote control 4, i.e. the sound signal generated by the main unit 1 is passed through the remote control 4.

[0031] The remote control unit 4 is provided with operating elements 14 and a display 15 enabling the user to control the connected audio device. The remote control 4 is fixed to the clothing by a clip in the same way as a pan. It is therefore easily detachable off and attachable to the clothing. Hence, each time the user intends to monitor or control the audio device he can take the remote control unit into his hands effecting a good visibility of the display 15 and accessibility of the control elements 14.

[0032]FIG. 2a exhibits the audio jack 12, the data jack 13 and the rod plug 7 in more detail. The different diameters and lengths of the rods 8 and 9 are clearly visible. Advantageously, this arrangement prevents the inadvertent insertion of the rods 8 and 9 into the wrong jacks 12 and 13.

[0033] In FIG. 2b the electrical configuration of the rods 8 and 9 are shown. The audio rod 8 is a four-pole-rod having four contact regions. Contact regions 16 and 17 are associated with a left and right channel of a stereo audio signal, respectively. Contact regions 18 and 19 are associated with a ground for analog signals and the ground for digital signals respectively.

[0034] The data rod 9 is a three-pole-rod having three contact regions. Contact region 21 is reserved for receiving start-up signals, contact region 22 is attributed to digital data/control signals and contact region 23 is attributed to the supply voltage for the remote control.

[0035] The audio jack 12 has corresponding electrical contacts for the four contact regions 16 to 19 of the audio rod and the data jack 13 has corresponding contacts for the contact regions 21 to 23 of the data rod 9.

[0036]FIG. 3 schematically shows a block diagram with the main unit and the remote control unit with regard to the command and display data exchange. On the left hand side of the dashed line 31 a block diagram of the main unit is shown whereas on the right hand side of the line 31 a block diagram of the remote control unit 4 is shown. The remote control unit is provided with a microprocessor 32 to communicate with a main microprocessor 33 in the main unit and to drive the LCD display 15 for informing the user about operating modes, operating parameters, music titles, etc. For entering a control command the user activates one of the switches 34 forming a “key ladder” representing a potential divider. When one of the keys is pressed the respective voltage level is provided to the main microprocessor 33, which converts the voltage into a corresponding digital value by means of an internal A/D converter. The digital value represents a command word for the operation of the main unit 1. Further details regarding the plug types and corresponding sockets as well as regarding the power-on sequence are presented in a further European patent application of the applicant having the filing number EP 0 140 1185.2.

[0037] Next, the communication protocol that is used for transferring data from the microprocessor in the main unit to the microprocessor in the remote unit will be explained. The upper part of FIG. 4 shows the format of a data frame. What is depicted is the voltage drop between the data/control line 22 and the digital ground 19. Before data transmission begins, the data line 23 is in its idle or inactivated state, which means it is in the logical high state according to FIG. 4. For starting a data transfer the main microprocessor pulls the data line 22 down to the digital ground potential, which corresponds to the logical low value. This is shown on the upper left side of FIG. 4. Data line 22 is pulled down to ground level for a time period called T_(active). This time period equals for example 4 ms. If the remote micro-controller samples the data line 22 in its sleep mode once every 3 ms, the set-up of time period T_(active) with 4 ms guarantees that the activated potential (“low” level) can be safely detected by the remote microprocessor. After elapse of this time period T_(active), the main μP releases the data line 22 and it goes back to the inactivated state, which is the logical high state for a second time period T_(stable). The time period T_(stable) is predefined to last for example also 4 ms. Within this time period the microprocessor in the remote controller must obtain a stabilized fast clock.

[0038] Following the time period T_(stable) data will be transferred in a number of data blocks. Between each two data blocks a short idling time period T_(gap) is positioned where the remote controller has got some time to shift the received data block into a buffer memory and for example to make the update for a calculated checksum. The number of data blocks transmitted in a data frame is variable. Four types of blocks are defined. The first data block concerns a synchronization block in which a specific bit pattern is transmitted to the remote microprocessor. The structure of this synchronization block is also shown in FIG. 4, see the lower part of FIG. 4. The sync block comprises an eight bit data word having the specific pattern 10101010. In front of this bit pattern a start bit is transmitted and behind it a stop bit is located. The microprocessor of the remote controller uses the falling edges of the sync block data word to tune its internal timer in order to achieve the accurate sampling frequency on the transmission line. Behind the sync block a waiting time T_(w) is preserved before transmitting the next data block. This gives the remote microprocessor time to prepare reception for the coming data words. This time period can for example be set to be 4 ms. Next, an info block is transferred from main microprocessor to the remote microprocessor. This info block contains an eight bit data word N. The meaning of this data word N is explained in the table below. Number of Data Blocks N Meanings to follow  0 Turn all pixels off 0 1-253 Inicates the Number of Data As specified by N Blocks to follow 254 Reserved for future use — 255 Turn all pixels on 0

[0039] When N is equal to zero or equal to 255, there will be no data block transferred in the data frame. With the value N=0 the remote microprocessor receives the command to turn off all the pixels of the LCD display in their remote controller. With the number N=255 the remote microprocessor will get the complementary command to turn all pixels of the LCD screen on. The value N=254 is reserved for future use and does not have a specific command associated with it at the moment. For all other cases the value N indicates the number of data blocks that will be transferred after the info block in the data frame. The structure of an info/data block is also shown in the lower part of FIG. 4. Each data block contains likewise an eight bit data word surrounded by a start bit and a stop bit. These significant bits 0-6 represent the pixel number of the LCD display and with the MSB bit 7 it is indicated whether this pixel is set to the on-state “1” or the off-state “0”. Of course each pixel of the LCD screen can be uniquely addressed and it can be set or reset under control of such a data word. At the end of a data frame a checksum block is transmitted last. It contains the checksum for the complete data frame. After sending this block the main microprocessor will leave the data/control line 22 inactive (i.e. logical high state) and start polling the data line for acknowledgement. The main microprocessor will poll for a period of T_(ack) as shown in FIG. 4. If the logical low level is not detected within the time period T_(ack), the transmission of the data frame is considered failed and a retransmission will take place four more times at maximum. If all five transmissions fail the remote controller is considered not to be available and then no further LCD data will be transmitted until a plug insertion is subsequently detected.

[0040] The time period T_(CS) behind the checksum block is the time the remote microprocessor takes to perform the final checksum calculation and to switch the port connected to the data line 22 to the requested output mode. Only if both checksums namely the calculated checksum and the received checksum corresponds to each other, the remote microprocessor will pull the data line to the activated level (low level) to assert positive acknowledgment. Main MCU will detect this level on the data line and can then prepare the next data frame transferal. The time period T_(OK) in FIG. 4 is the time where the remote microprocessor must keep the data line low to assert positive acknowledgement. Both time periods T_(CS)+T_(OK) must not exceed the time period T_(ack). After the acknowledgement period the data line will be released from both microprocessors so that it has its idle level which corresponds to the logical high state in FIG. 4. During the time T_(idle) the data line remains at this level. The time T_(idle) preferably is defined to be as long as the maximum allowed time for updating the LCD display in the remote controller.

[0041] The operations of the remote microprocessor are summarized as follows:

[0042] Step 1: LCD data line is connected to the interrupt/IO port INT1 of the remote microprocessor.

[0043] Step 2: The remote microprocessor detects the “low level” on the data line 22 during the time period T_(active).

[0044] Step 3: The remote microprocessor switches on its fast clock oscillator.

[0045] Step 4: Upon stabilization of the fast clock oscillator, the remote microprocessor switches to fast clock or normal operation mode.

[0046] Step 5: The remote microprocessor samples the data/control line signals at the fastest sampling rate until the first falling edge of the sync block is detected.

[0047] Step 6: Upon detection of the first falling edge of the sync block on the INT1 interrupt input the interrupt service routine starts its internal timer.

[0048] Step 7: Upon detection of the second falling edge of the sync block, the interrupt service routine for interrupt input INT1 measures the time difference that corresponds to two bit periods and restarts the timer.

[0049] Step 8: The steps 6 and 7 are repeated until all five falling edges of the sync block data word have passed.

[0050] Step 9: The average value of the bit time T_(bit) is calculated.

[0051] Step 10: The remote microprocessor prepares receipt of subsequent info block, and data blocks and the checksum block.

[0052] Step 11: The interrupt for interrupt input INT₁ is enabled.

[0053] Step 12: The first falling edge of the subsequent info/data/checksum block (i.e. falling edge of start bit) triggers in each case the INT1 interrupt.

[0054] Step 13: In this step the INT1 interrupt is disabled and the internal timer is started with a time-out that equals to one bit period T_(bit) to skip the start bit.

[0055] Step 14: For sampling the subsequent bit, the internal timer is set so that three samples of each bit period are taken. This is shown in FIG. 5.

[0056] Step 15: The value of the bit according to the three samples is determined.

[0057] Step 16: Step 14 and 15 are repeated until all A8 bits of a block are retrieved.

[0058] Step 17: The remote μP calculates the interim checksum.

[0059] Step 18: Here the steps 11-17 are repeated until the last block (i.e. checksum block) is received.

[0060] Step 19: If the calculated checksum matches the received checksum block, the INT1 port of the remote microprocessor will be configured as an output port and the output port will be set to logical low value for the time period T_(OK) in order to make a positive acknowledgement via the data line. The data line is therefore driven in both directions and that is why the data line can be characterized as a bi-directional data line. 

1. Method for the serial transfer of data between two electronic bus stations over a bus connection where a first line is dedicated to data/control signals and a second line is dedicated to a power supply voltage V_(cc) or ground, comprising the steps of: i) starting a data transfer in a first direction by pulling the first line to an activated potential low or high for a first period of time; ii) after elapse of the first period of time leaving said first line inactive for a second period of time; iii) commencing data transmission via said first and second line after elapse of said second period of time.
 2. Method according to claim 1, wherein the first line is pulled to a potential corresponding to the logical “low” state of the data/control line instead i) and the inactive state instead ii) corresponds to a potential corresponding to the logical “high” state.
 3. Method according to claim 1, wherein the first period of time is longer than a period in which the bus station listening to said data/control line is polling the data/control line to detect the starting of a data transfer.
 4. Method according to claim 1, wherein the second period of time is shorter than said first period of time.
 5. Method according to claim 1, wherein data is transmitted after said second period of time in form of blocks, with an idling time between each two blocks, in which the data/control line remains in said inactive state.
 6. Method according to claim 5, wherein the first block transferred in a data frame is a synchronization block in which a specific bit pattern is transferred for synchronization purposes.
 7. Method according to claim 6, wherein the idling time after said sync block is longer than the idling time between each two data blocks.
 8. Method according to claim 5, wherein the second block transferred in a data frame is an information block in which the number of data blocks to be transferred in the data frame is transferred to the receiving end.
 9. Method according to claim 5, wherein with the last data block in the data frame a checksum is transferred and after transferal of said checksum the transmitting station releases said data/control line to its inactive state.
 10. Method according to claim 9, wherein the receiving station compares a calculated checksum with said received checksum and pulls within a predetermined time period said data/control line to said activated potential to acknowledge receipt of a data frame.
 11. Method according to claim 10, wherein the checksum is calculated step by step in the receiving station, each time after receipt of a block.
 12. Communication system comprising a transmitting station and a receiving station, both stations being connected by a serial bus connection where a first line is dedicated to data/control signals and a second line is dedicated to a power supply voltage or ground, wherein said transmitting station comprises means for pulling the first line to an activated potential for a first period of time, then leaving said first line inactive for a second period of time in order to start a data frame, said transmitting station further comprising means for sending data in form of a number of blocks, wherein the means transmit the first data block directly after elapse of said second period of time.
 13. Communication system according to claim 12, said transmitting station further comprising means for leaving said first line inactive after the last block has been transferred, wherein the receiving station comprises means for pulling said first line to an active potential for a third period of time after receipt of the last block in order to acknowledge data frame receipt.
 14. Communication system according to claim 12, wherein with the last block a checksum is transferred and wherein the receiving station Comprises means for calculating a checksum step by step each time upon receipt of a block and for comparing the calculated checksum with a received checksum, said receiving station giving the acknowledgement if the calculated checksum matches with the received checksum.
 15. Communication system according to claim 12, wherein the transmitting station is integrated in a consumer electronic product in particular CD player and said receiving station is integrated in a wired remote control for the consumer electronic product. 